/*
    This file is part of the substandard lisp implementation of Standard Lisp
    Copyright (C) 2011 Nicky Nickell

    substandard lisp is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

var reduce_files = {};

function reduce() {
  this.stdout = new lisp_channel();
  this.stderr = new lisp_channel();
  this.lisp = new interpreter(new lisp_channel(), this.stdout, this.stderr);
  this.lisp.initialize();

  for (file in files) {
    this.lisp.environment.files[file] = files[file];
  }

  this.lisp.environment.files['reduceinput'] = '';
}

reduce.prototype.evaluate = function (expr) {
  this.lisp.evaluate('(begin2)' + expr + 'end;');
}

reduce.prototype.initialize = function () {
  this.lisp.evaluate('(rdf "initialize.lsp")');
  this.lisp.stderr.flush();
  this.lisp.stdout.flush();
}
